<?php

/**
 * Description of components
 *
 * @author Вит
 */
class _commonComponents extends sfComponents {
  
  private static $title = 'controls';

  private static $menu = array();

  private static function checkCred($credentials) {

    if (is_array($credentials)) {
      $credentials += array('n/a');
    } else if ($credentials != 'n/a') {
      $credentials = array($credentials, 'n/a');
    }

    return sfContext::getInstance()->getUser()->hasCredential($credentials, false);
  }


  private static function menuAdd($section, $info) {
    self::$menu[$section] = $info + array(
      'submenu'      => array(),
      'url'          => ''
    );
  }


  private static function submenuAdd($section, $info, $credentials = 'na') {
      if (!self::checkCred($credentials)) {
          return;
      }
      
      if (!isset(self::$menu[$section])) {
          return;
      }
      
      if (!@self::$menu[$section]['url']) {
          self::$menu[$section]['url'] = $info['url'];
      }
      
      self::$menu[$section]['credentials'][] = $credentials;
      
      $info += array(
          'attributes' => array()
      );
      
      if (isset($info['active']) && $info['active']) {
          self::$menu[$section]['active'] = true;
          self::$title = self::$menu[$section]['title'] . ' - ' . $info['title'] . ' - ' . 'TETRADKA';
      }
      
      self::$menu[$section]['submenu'][] = $info;
      
  }

    public static function generateMenu($module, $action) {
        
        // Заполнение горизонтального меню
        self::menuAdd(
            'pages',
            array(
                'title' => 'Страницы',
                'active' => $module == 'pages',
                'url' => '@pages',
            ),
            array('pages')
        );
//
//      self::menuAdd(
//        'orders',
//        array(
//          'title' => 'Заказы',
//          'url' => '@order',
//          'active' => $module == 'order',
//        ),
//        'orders'
//      );      

//        self::submenuAdd(
//            'finance',
//            array(
//                'title' => 'Обмен валют',
//                'url' => 'income/exchange',
//                'component' => 'exchangeForms',
//                'active' => ( $module == 'income' && $action == 'exchange' ),
//                'id' => 'sf_admin_action_exchange',
//                'class' => 'currency_exchange',
//                'attributes' => array("onclick"=>"common.overlay({ url: '". url_for('income/exchange'). "' });return false;" )
//            ),
//            'finance_cashflow'
//        );

        
//        // Заполнение вертикального меню настрек
//        self::menuAdd(
//            'lists',
//            array(
//                'title' => 'Справочник',
//                'active' =>false
//            )
//        );

//      self::submenuAdd(
//        'lists',
//        array(
//          'url'    => '@country',
//          'active' => $module == 'country',
//          'title'  => 'Страны',
//          'class'  => 'country',
//        ),
//        'settings'
//      );



      sfContext::getInstance()->getResponse()->setTitle(self::$title);

    }


  public function executeMenu() {
    $this->menus = self::$menu;
  }
  
}

?>
